package B刷题.贪心;

import java.util.PriorityQueue;

/**
 * @author wei.zhao
 * @description: 剑指 Offer II 065.最短的单词编码
 * @date 2022年11月24日 16:16
 */
public class Code03_MinimumLengthEncoding {

    /**
     * 按照字符串长度放入大根堆，逐个弹出判断是否包含字符串。
     */
    public int minimumLengthEncoding(String[] words) {
        String result = "";
        PriorityQueue<String> queue = new PriorityQueue<>((s1, s2) -> s2.length() - s1.length());
        for (String word : words) {
            queue.add(word);
        }
        while (!queue.isEmpty()) {
            String poll = queue.poll();
            if (!result.contains(poll + "#")) {
                result = result + poll + "#";
            }
        }
        return result.length();
    }

}
